import dbfread


class dbfhq:
    def __init__(self):
        self.i = 0
        self.sec_code = None
        self.res = None
        try:
            file = "./NQHQ.DBF"
            self.res = dbfread.DBF(file, encoding='gbk', char_decode_errors='ignore', load=True)
            print(self.res.records[0])
            print('北交所行情文件加载成功\n')
        except Exception as e:
            print(f'dbf 文件打开失败,错误原因：{e}')

    def begin(self):
        self.sec_code = input('输入要查询的证券代码：')
        while 1:
            try:
                if self.sec_code == self.res.records[self.i]['HQZQDM']:
                    print('已找到目标', self.i)
                    self.printHQ()
                    break
                self.i += 1
            except IndexError:
                print('未找到目标证券')
                break

    def printHQ(self):
        print('===================================================================')
        print(f"查询证券代码 {self.sec_code}:【{self.res.records[self.i]['HQZQJC']}】的行情：")
        print(f"最新价{self.res.records[self.i]['HQZJCJ']}")
        print(f"卖五= 价格【{self.res.records[self.i]['HQSJW5']}】/数量【{self.res.records[self.i]['HQSSL5']}】")
        print(f"卖四= 价格【{self.res.records[self.i]['HQSJW4']}】/数量【{self.res.records[self.i]['HQSSL4']}】")
        print(f"卖三= 价格【{self.res.records[self.i]['HQSJW3']}】/数量【{self.res.records[self.i]['HQSSL3']}】")
        print(f"卖二= 价格【{self.res.records[self.i]['HQSJW2']}】/数量【{self.res.records[self.i]['HQSSL2']}】")
        print(f"卖一= 价格【{self.res.records[self.i]['HQSJW1']}】/数量【{self.res.records[self.i]['HQSSL1']}】")
        print()
        print(f"买一= 价格【{self.res.records[self.i]['HQBJW1']}】/数量【{self.res.records[self.i]['HQBSL1']}】")
        print(f"买二= 价格【{self.res.records[self.i]['HQBJW2']}】/数量【{self.res.records[self.i]['HQBSL2']}】")
        print(f"买三= 价格【{self.res.records[self.i]['HQBJW3']}】/数量【{self.res.records[self.i]['HQBSL3']}】")
        print(f"买四= 价格【{self.res.records[self.i]['HQBJW4']}】/数量【{self.res.records[self.i]['HQBSL4']}】")
        print(f"买五= 价格【{self.res.records[self.i]['HQBJW5']}】/数量【{self.res.records[self.i]['HQBSL5']}】")


if __name__ == '__main__':
    a = dbfhq()
    a.begin()
